Machinery is traditionally serviced at recommended periodic intervals based on predetermined guidelines. For example, an automobile manufacturer may recommend that the oil be replaced in a vehicle every 7,500 miles. However, under certain conditions, the oil in the vehicle may not actually need replacing at the 7,500 mile interval, while under other conditions; the oil might actually need to be changed at 4,000 miles. In the former situation, the vehicle is taken out of service sooner than necessary, and costs are expended to replace oil which did not need replacing. In the latter situation, the life of the engine may be compromised because the oil was not replaced as soon as it should have been.
Increasingly, companies are using condition-based maintenance (CBM) (sometimes referred to as predictive maintenance) to determine when a machine should be serviced. CBM uses one or more inputs, such as sensor data identifying real-time characteristics of the machine, historical maintenance of the machine, and the like, to predict whether a particular machine needs maintenance. One goal of CBM is to more closely align the need for maintenance with the actual maintenance of the machine. For example, in the case of changing the oil in a vehicle as discussed above, the vehicle may be equipped with one or more sensors that sense the condition of the oil in the vehicle. The sensors may be able to quantify attributes or characteristics of the oil, such as the viscosity of the oil, the percentage of impurities in the oil, and the like, which may be used to predict or otherwise determine whether or not the oil in the particular vehicle needs replacing. CBM information may at times be consistent with preventive maintenance guidelines, it may be inconsistent with preventive maintenance guidelines, or it may simply indicate a need to service a component on a machine independent of preventive maintenance guidelines that indicate a need to service another component on the machine.
Many large scale distributed organizations need to continually maintain complex machines. Non-limiting examples include package delivery services, airlines, and the military. Such organizations typically have a full-time maintenance function that includes multiple maintenance facilities, many full-time service technicians assigned to particular facilities, parts located in the various facilities, and the like. Such organizations are increasingly using both time-based maintenance information to generate work orders that identify a needed service for a machine, and CBM information to generate work orders that predict or otherwise determine a need for service for a machine. This results in a large number of work orders that are associated with a large number of machines, wherein some of the work orders may be duplicative, some may be complementary, and some may be independent of one another.
Generally, the logistics associated with maintaining a large number of machines are constraint-based. For example, there are a number of machines that need maintaining, that may at different points in time be located in proximity to different maintenance facilities. At those facilities, there may be a limited number of technicians, and each technician may have certain limiting qualifications that permit them to work only on certain maintenance procedures. Further constraints may be that each technician can only work so many hours a day, there a finite number of parts located at particular facilities, etc.
Generating a maintenance schedule that takes work orders based on time-based information and work orders based on CBM information into consideration, in conjunction with the constraints associated with maintaining a large number of complex machines is a daunting task. Accordingly, there is a need for an automated constraint-based scheduler that reconciles the different types of work orders, takes the many constraints associated with maintaining large numbers of machines into consideration, and generates a maintenance schedule based on such information upon demand.